
<html><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta content="text/javascript" http-equiv="content-script-type">
<title>necrophilia.animation.Base</title>
<link rel="stylesheet" type="text/css" href="candydoc/style.css">
<!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="candydoc/ie56hack.css"><![endif]-->
<script language="JavaScript" src="candydoc/util.js" type="text/javascript"></script>
<script language="JavaScript" src="candydoc/tree.js" type="text/javascript"></script>
<script language="JavaScript" src="candydoc/explorer.js" type="text/javascript"></script>
</head><body>
<div id="tabarea"></div><div id="explorerclient"></div>
<div id="content"><script>explorer.initialize("necrophilia.animation.Base", "candydoc/");</script>
	<table class="content">
		<tr><td id="docbody"><h1>necrophilia.animation.Base</h1><!-- Generated by Ddoc from C:\Projects\necrophilia\necrophilia\animation\Base.d -->
<br><br>

<script>explorer.outline.incSymbolLevel();</script>
<dl>
<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">struct 
<span class="currsymbol">Keyframe</span>
<script>explorer.outline.addDecl('Keyframe');</script>

(Time);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>Simplest keyframe. As in definition the keyframe is implemented as a point in time (where Time type is free to set as it is a template)
	where the bone is transformed by translating and rotating it. The translation vector and rotation quaternion are held in maths.CoordSys
<br><br>


<script>explorer.outline.incSymbolLevel();</script>
<dl>
<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">Time 
<span class="currsymbol">time</span>
<script>explorer.outline.addDecl('time');</script>

;
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>point in 
<span class="currsymbol">time</span>
<script>explorer.outline.addDecl('time');</script>


<br><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">CoordSys 
<span class="currsymbol">transformation</span>
<script>explorer.outline.addDecl('transformation');</script>

;
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>translation and rotation
<br><br>

</dd>
</dl>
<script>explorer.outline.decSymbolLevel();</script>


</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">class 
<span class="currsymbol">Animation</span>
<script>explorer.outline.addDecl('Animation');</script>

(Time);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>
<span class="currsymbol">Animation</span>
<script>explorer.outline.addDecl('Animation');</script>

. Animaiton is a set of keyframes for each bone, with it's speed (how fast the time is going) , and it's starting point. Why starting point ? First for
	flexibility. Some people meybe would like to start their animations in half of the keyframes. Second - for more flexibility. if i would decide
	to set start to 0... the Time type would have to know what 0 is.. i don't want to do such a restrictions. It's programmer's job to tell wherefrom
	starting the animation.
<br><br>
<b>Note:</b><br>
All the memory is allocated manually, without knowlage of the gc, it is cleaned in 
<span class="currsymbol">Animation</span>
<script>explorer.outline.addDecl('Animation');</script>

 class destructor
<br><br>


<script>explorer.outline.incSymbolLevel();</script>
<dl>
<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">this(int n, Time speed, Time start);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>Constructior
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">n</td>

               
<td>number of bones. As it was mentioned - animation holds keyframes per bone</td></tr>
<tr>
<td nowrap valign="top" style="padding-right: 8px">speed</td>

               
<td>animations speed. This speed is later used to create Timer in AnimationInstance</td></tr>
<tr>
<td nowrap valign="top" style="padding-right: 8px">start</td>

               
<td>the start point, in most cases it would be a 0 for you, but i don't set it as a default for the reason i've mentioned;</td></tr>
</table><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">void 
<span class="currsymbol">addKeyframe</span>
<script>explorer.outline.addDecl('addKeyframe');</script>

(int <span class="funcparam">boneIndex</span>, Time <span class="funcparam">time</span>, CoordSys <span class="funcparam">transformation</span>);
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>Method used for building the animation keyframes
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">int <span class="funcparam">boneIndex</span></td>

               
<td>index of a bone, for which the keyframe is for (<span class="funcparam">transformation</span> of the bone should occur)</td></tr>
<tr>
<td nowrap valign="top" style="padding-right: 8px">Time <span class="funcparam">time</span></td>

               
<td>the <span class="funcparam">time</span> of the keyframe</td></tr>
<tr>
<td nowrap valign="top" style="padding-right: 8px">CoordSys <span class="funcparam">transformation</span></td>

               
<td>keyframes <span class="funcparam">transformation</span></td></tr>
</table><br>

</dd>

<script>explorer.outline.writeEnabled = true;</script>
<dt><span class="decl">Keyframe!(Time)[] 
<span class="currsymbol">keyframes</span>
<script>explorer.outline.addDecl('keyframes');</script>

(int <span class="funcparam">boneIndex</span>);
<br>Time 
<span class="currsymbol">start</span>
<script>explorer.outline.addDecl('start');</script>

();
<br>int 
<span class="currsymbol">bonesNumber</span>
<script>explorer.outline.addDecl('bonesNumber');</script>

();
</span></dt>
<script>explorer.outline.writeEnabled = false;</script>


<dd>Will give 
<span class="currsymbol">keyframes</span>
<script>explorer.outline.addDecl('keyframes');</script>

 for apropriate bone
<br><br>
<b>Params:</b><br>
<table><tr>
<td nowrap valign="top" style="padding-right: 8px">int <span class="funcparam">boneIndex</span></td>

               
<td>index of a bone you want to get keyframe set</td></tr>
</table><br>
<b>Returns:</b><br>
keyframset
	
<br><br>

</dd>
</dl>
<script>explorer.outline.decSymbolLevel();</script>


</dd>
</dl>
<script>explorer.outline.decSymbolLevel();</script>


</td></tr>
		<tr><td id="docfooter">
			Page was generated with
			<img src="candydoc/img/candydoc.gif" style="vertical-align:middle; position:relative; top:-1px">
			on Wed Mar 21 02:44:07 2007

		</td></tr>
	</table>
</div>
<script>
   explorer.packageExplorer.addModule("necrophilia.Exception");
   explorer.packageExplorer.addModule("necrophilia.Time");
   explorer.packageExplorer.addModule("necrophilia.helpers.Callback");
   explorer.packageExplorer.addModule("necrophilia.helpers.Interpolation");
   explorer.packageExplorer.addModule("necrophilia.helpers.ListArray");
   explorer.packageExplorer.addModule("necrophilia.animation.Base");
   explorer.packageExplorer.addModule("necrophilia.animation.DataNodes");
   explorer.packageExplorer.addModule("necrophilia.animation.Instance");
   explorer.packageExplorer.addModule("necrophilia.animation.Inteligent");
   explorer.packageExplorer.addModule("necrophilia.skeleton.DataNodes");
   explorer.packageExplorer.addModule("necrophilia.skeleton.Bone");
   explorer.packageExplorer.addModule("necrophilia.skeleton.Skeleton");</script>
</body></html>


